05. Reflection

Reflection

Note: If you didn't already, make sure you submit part three by clicking the SUBMIT button in the lower of the Part 3 notebook.

The activities you just went through were simplified: when designing a self driving car we try to avoid writing special code that only applies to specific situations like staying on a circular track of some particular size. We prefer to write code that generalizes to many driving situations.

In order to do that, the car needs to know what's going on around it and it does that by using its sensors. Unfortunately the measurements these sensors make are UNAVOIDABLY unreliable. In the next part of this Nanodegree you'll learn probabilistic techniques for handling this unreliability.

A note on Control Noise

While solving this project you may have noticed something strange: sometimes the same code didn't actually do the same thing!

This "bug" should help you understand what it feels like to try to program a self driving car or any system where control noise is present. A car is an imperfect mechanical system and that means that it's response to a fixed input can change over time. Near the end of this curriculum you will learn how we use motion controllers to respond to unexpected behavior from the car.